<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><title>coredumpctl
  中文手册 [金步国]</title><style>
@font-face { font-family: "JinBuGuoWebMono"; src: url("http://www.jinbuguo.com/d/mono.ttf") format("truetype"); }
* { font-family: "JinBuGuoWebMono", "Ubuntu Mono", "Consolas", "Menlo", monospace; }
body { margin:10px; }
h1 { text-align:center; background:#ddd; }
h2#auth_name { text-align:center; margin: 10px 5%; }

    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
</style><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><h1>coredumpctl 中文手册</h1><h2 id="auth_name">译者：<strong><a href="http://www.jinbuguo.com/">金步国</a></strong></h2><hr><h3>版权声明</h3><p>本文译者是一位开源理念的坚定支持者，所以本文虽然不是软件，但是遵照开源的精神发布。</p><ul><li>无担保：本文译者不保证译文内容准确无误，亦不承担任何由于使用此文档所导致的损失。</li><li>自由使用：任何人都可以自由的<u>阅读/链接/打印</u>此文档，无需任何附加条件。</li><li>名誉权：任何人都可以自由的<u>转载/引用/再创作</u>此文档，但必须保留译者署名并注明出处。</li></ul><h3>其他作品</h3><p>本文译者十分愿意与他人分享劳动成果，如果你对我的其他翻译作品或者技术文章有兴趣，可以在如下位置查看现有的作品集：</p><ul><li><a href="http://www.jinbuguo.com/">金步国作品集</a> [ <a href="http://www.jinbuguo.com/">http://www.jinbuguo.com/</a> ]</li></ul><h3>联系方式</h3><p>由于译者水平有限，因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好)，请来信指出，任何提高译文质量的建议我都将虚心接纳。</p><ul><li>Email(QQ)：70171448在QQ邮箱</li></ul><hr><a href="systemd.index.html">手册索引</a> ·
  <a href="systemd.directives.html">指令索引</a><span style="float:right">systemd-241</span><hr><div class="refentry"><a name="coredumpctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>名称</h2><p>coredumpctl — 提取与处理已保存的内存转储数据</p></div><div class="refsynopsisdiv"><h2>大纲</h2><div class="cmdsynopsis"><p><code class="command">coredumpctl</code>  [OPTIONS...] {COMMAND} [PID|COMM|EXE|MATCH...]</p></div></div><div class="refsect1"><a name="id-1.5"></a><h2 id="描述">描述<a class="headerlink" title="Permalink to this headline" href="coredumpctl.html#%E6%8F%8F%E8%BF%B0">¶</a></h2><p><span class="command"><strong>coredumpctl</strong></span>
    工具用于提取与处理先前由
    <a href="systemd-coredump.html#"><span class="citerefentry"><span class="refentrytitle">systemd-coredump</span>(8)</span></a> 保存的内存转储数据(内存镜像以及元数据)
    </p></div><div class="refsect1"><a name="id-1.6"></a><h2 id="选项(OPTIONS)">选项(OPTIONS)<a class="headerlink" title="Permalink to this headline" href="coredumpctl.html#%E9%80%89%E9%A1%B9(OPTIONS)">¶</a></h2><p>可以识别的选项如下：</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#-h">¶</a></dt><dd><p><a name="help-text"></a>显示简短的帮助信息并退出。
    </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#--version">¶</a></dt><dd><p><a name="version-text"></a>显示简短的版本信息并退出。</p></dd><dt id="--no-legend"><span class="term"><code class="option">--no-legend</code></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#--no-legend">¶</a></dt><dd><p>不输出列标题，也就是不在输出列表的头部和尾部显示字段的名称。</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#--no-pager">¶</a></dt><dd><p>不将程序的输出内容管道(pipe)给分页程序。</p></dd><dt id="-1"><span class="term"><code class="option">-1</code></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#-1">¶</a></dt><dd><p>仅显示单独一个内存转储的信息，
        而不是列出全部已知的内存转储。</p></dd><dt id="-S"><span class="term"><code class="option">-S</code>, </span><span class="term"><code class="option">--since</code></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#-S">¶</a></dt><dd><p>仅显示指定时刻之后发生的内存转储。</p></dd><dt id="-U"><span class="term"><code class="option">-U</code>, </span><span class="term"><code class="option">--until</code></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#-U">¶</a></dt><dd><p>仅显示指定时刻之前发生的内存转储。</p></dd><dt id="-r"><span class="term"><code class="option">-r</code>, </span><span class="term"><code class="option">--reverse</code></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#-r">¶</a></dt><dd><p>翻转输出顺序，也就是首先显示最近发生的内存转储。
        </p></dd><dt id="-F FIELD"><span class="term"><code class="option">-F</code> <em class="replaceable"><code>FIELD</code></em>, </span><span class="term"><code class="option">--field=</code><em class="replaceable"><code>FIELD</code></em></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#-F%20FIELD">¶</a></dt><dd><p>显示在日志中匹配到的全部内存转储的指定字段的所有可能值。
        [译者注]类似于SQL语句：
        "<code class="literal">SELECT DISTINCT 指定字段 FROM 在日志中匹配到的全部内存转储</code>"</p></dd><dt id="-o FILE"><span class="term"><code class="option">-o</code> <em class="replaceable"><code>FILE</code></em>, </span><span class="term"><code class="option">--output=</code><em class="replaceable"><code>FILE</code></em></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#-o%20FILE">¶</a></dt><dd><p>将内存镜像保存到指定的 <code class="option">FILE</code> 文件中。
        </p></dd><dt id="--debugger=DEBUGGER"><span class="term"><code class="option">--debugger=</code><em class="replaceable"><code>DEBUGGER</code></em></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#--debugger=DEBUGGER">¶</a></dt><dd><p>为 <span class="command"><strong>debug</strong></span> 命令指定调试器。
        如果没有指定此选项，并且也没有设置 <code class="varname">$SYSTEMD_DEBUGGER</code> 环境变量，那么将会使用默认的
        <a href="http://www.jinbuguo.com/systemd/gdb.html#"><span class="citerefentry"><span class="refentrytitle">gdb</span>(1)</span></a>
        调试器。</p></dd><dt id="-D DIR"><span class="term"><code class="option">-D</code> <em class="replaceable"><code>DIR</code></em>, </span><span class="term"><code class="option">--directory=</code><em class="replaceable"><code>DIR</code></em></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#-D%20DIR">¶</a></dt><dd><p>仅使用指定的 <code class="option">DIR</code> 目录中的日志。
        </p></dd><dt id="-q"><span class="term"><code class="option">-q</code>, </span><span class="term"><code class="option">--quiet</code></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#-q">¶</a></dt><dd><p>安静模式，
        也就是不显示任何例如无权访问日志文件、内存转储正在保存中之类的警告信息与提示信息。
        </p></dd></dl></div></div><div class="refsect1"><a name="id-1.7"></a><h2 id="命令(COMMAND)">命令(COMMAND)<a class="headerlink" title="Permalink to this headline" href="coredumpctl.html#%E5%91%BD%E4%BB%A4(COMMAND)">¶</a></h2><p>可以识别的命令如下：</p><div class="variablelist"><dl class="variablelist"><dt id="list"><span class="term"><span class="command"><strong>list</strong></span></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#list">¶</a></dt><dd><p>列出日志中所有符合指定特征的内存转储。
        如果没有明确使用任何命令，
        那么该命令就是隐含的默认命令。</p><p>此命令会输出一个便于人类阅读的列表，
        列表中将包含以下字段：</p><div class="variablelist"><dl class="variablelist"><dt id="TIME"><span class="term">TIME</span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#TIME">¶</a></dt><dd><p>内核报告的发生崩溃的时刻</p></dd><dt id="PID"><span class="term">PID</span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#PID">¶</a></dt><dd><p>崩溃进程的进程标识符</p></dd><dt id="UID"><span class="term">UID, </span><span class="term">GID</span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#UID">¶</a></dt><dd><p>崩溃进程的身份标识符(属主与属组)</p></dd><dt id="SIGNAL"><span class="term">SIGNAL</span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#SIGNAL">¶</a></dt><dd><p>导致进程崩溃的信号(若可用)
            </p></dd><dt id="COREFILE"><span class="term">COREFILE</span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#COREFILE">¶</a></dt><dd><p>内核转储是否已经被保存、以及是否仍然可以访问：
             "<code class="literal">none</code>" 表示未被保存；
             "<code class="literal">-</code>"
            表示不可用(例如因为进程不是被某个信号结束)；
             "<code class="literal">present</code>" 表示已被保存在外部文件中并且可以被当前用户访问；
             "<code class="literal">journal</code>" 表示已被保存在日志中并且可以被当前用户访问；
             "<code class="literal">truncated</code>"
            表示因为内存转储的体积太大，已被截断保存，并且可以被当前用户访问；
             "<code class="literal">error</code>"
            表示无法访问先前已保存的内存转储(通常是因为没有权限)；
             "<code class="literal">missing</code>" 表示
            先前保存的外部文件已经被删除；</p></dd><dt id="EXE"><span class="term">EXE</span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#EXE">¶</a></dt><dd><p>可执行文件的完整路径。
            对于脚本来说则是解释器的完整路径。</p></dd></dl></div><p>需要特别提醒的是，
        保存在日志中的元数据与保存在外部文件中的内存镜像(位于
        <code class="filename">/var/lib/systemd/coredump/</code> 目录中)所受到的限制是完全不同的(详见
        <a href="systemd-coredump.html#"><span class="citerefentry"><span class="refentrytitle">systemd-coredump</span>(8)</span></a> 手册)。
        所以，经常会出现这样的情况：
        在日志中仍然存在的内存转储事件所对应的保存内存镜像的外部文件
        已经被删除。</p></dd><dt id="info"><span class="term"><span class="command"><strong>info</strong></span></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#info">¶</a></dt><dd><p>显示从日志中提取的、与指定的特征匹配的那些内存转储的详细信息。
        若未指定匹配特征，
        则显示最近一次内存转储的详细信息。</p></dd><dt id="dump"><span class="term"><span class="command"><strong>dump</strong></span></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#dump">¶</a></dt><dd><p>提取与指定的特征匹配的最近一次内存转储数据(内存镜像)。
        若未指定匹配特征，则匹配最近一次内存转储。
        因为二进制数据不适合直接显示，所以务必将此命令的输出重定向到一个文件中，或者配合
        <code class="option">--output=</code> 选项一起使用。</p></dd><dt id="debug"><span class="term"><span class="command"><strong>debug</strong></span></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#debug">¶</a></dt><dd><p>调用调试器来分析与指定的特征匹配的最近一次内存转储。
        若未指定匹配特征，则匹配最近一次内存转储。默认使用
        <a href="http://www.jinbuguo.com/systemd/gdb.html#"><span class="citerefentry"><span class="refentrytitle">gdb</span>(1)</span></a>
        调试器，但是也可以使用 <code class="option">--debugger=</code>
        选项或者 <code class="varname">$SYSTEMD_DEBUGGER</code> 环境变量
        来指定其他调试器。</p></dd></dl></div></div><div class="refsect1"><a name="id-1.8"></a><h2 id="匹配特征(PID|COMM|EXE|MATCH)">匹配特征(PID|COMM|EXE|MATCH)<a class="headerlink" title="Permalink to this headline" href="coredumpctl.html#%E5%8C%B9%E9%85%8D%E7%89%B9%E5%BE%81(PID%7CCOMM%7CEXE%7CMATCH)">¶</a></h2><p>可以识别的特征如下：</p><div class="variablelist"><dl class="variablelist"><dt id="PID1"><span class="term"><em class="replaceable"><code>PID</code></em></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#PID1">¶</a></dt><dd><p>一个正整数，
        表示
        发生内核转储的进程的"PID"。</p></dd><dt id="COMM"><span class="term"><em class="replaceable"><code>COMM</code></em></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#COMM">¶</a></dt><dd><p>可执行程序的文件名(用于匹配
        <code class="option">COREDUMP_COMM=</code> 字段)，必须不能包含路径分隔符(斜杠)。
        </p></dd><dt id="EXE1"><span class="term"><em class="replaceable"><code>EXE</code></em></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#EXE1">¶</a></dt><dd><p>可执行程序的路径(用于匹配
        <code class="option">COREDUMP_EXE=</code> 字段)，
        必须包含至少一个路径分隔符(正斜杠)。</p></dd><dt id="MATCH"><span class="term"><em class="replaceable"><code>MATCH</code></em></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#MATCH">¶</a></dt><dd><p>常规的日志过滤器(必须符合"<code class="literal">FIELD=VALUE</code>"格式)。
        详见
        <a href="journalctl.html#"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a> 手册。
        </p></dd></dl></div></div><div class="refsect1"><a name="id-1.9"></a><h2 id="退出状态">退出状态<a class="headerlink" title="Permalink to this headline" href="coredumpctl.html#%E9%80%80%E5%87%BA%E7%8A%B6%E6%80%81">¶</a></h2><p>返回值为 0 表示成功，
    非零返回值表示失败代码。
    注意，没有找到任何匹配的内存转储视为失败。
    </p></div><div class="refsect1"><a name="id-1.10"></a><h2 id="环境变量">环境变量<a class="headerlink" title="Permalink to this headline" href="coredumpctl.html#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_DEBUGGER"><span class="term"><code class="varname">$SYSTEMD_DEBUGGER</code></span><a class="headerlink" title="Permalink to this term" href="coredumpctl.html#%24SYSTEMD_DEBUGGER">¶</a></dt><dd><p>为 <span class="command"><strong>debug</strong></span> 命令指定调试器。
        参见 <code class="option">--debugger=</code> 选项。</p></dd></dl></div></div><div class="refsect1"><a name="id-1.11"></a><h2 id="例子">例子<a class="headerlink" title="Permalink to this headline" href="coredumpctl.html#%E4%BE%8B%E5%AD%90">¶</a></h2><div class="example"><a name="id-1.11.2"></a><p class="title"><b>例 1. 列出所有文件名为 foo 的可执行程序的内存转储：</b></p><div class="example-contents"><pre class="programlisting"># coredumpctl list foo</pre></div></div><br class="example-break"><div class="example"><a name="id-1.11.3"></a><p class="title"><b>例 2. 为最近一次内存转储调用 gdb 调试器：</b></p><div class="example-contents"><pre class="programlisting"># coredumpctl debug</pre></div></div><br class="example-break"><div class="example"><a name="id-1.11.4"></a><p class="title"><b>例 3. 显示所有 PID=6654 的进程
      所产生的内存转储的详细信息：</b></p><div class="example-contents"><pre class="programlisting"># coredumpctl info 6654</pre></div></div><br class="example-break"><div class="example"><a name="id-1.11.5"></a><p class="title"><b>例 4. 提取 /usr/bin/bar 的最近一次内存转储数据(内存镜像)，并将其保存在
      <code class="filename">bar.coredump</code> 文件中：</b></p><div class="example-contents"><pre class="programlisting"># coredumpctl -o bar.coredump dump /usr/bin/bar</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="id-1.12"></a><h2 id="参见">参见<a class="headerlink" title="Permalink to this headline" href="coredumpctl.html#%E5%8F%82%E8%A7%81">¶</a></h2><p>
      <a href="systemd-coredump.html#"><span class="citerefentry"><span class="refentrytitle">systemd-coredump</span>(8)</span></a>,
      <a href="coredump.conf.html#"><span class="citerefentry"><span class="refentrytitle">coredump.conf</span>(5)</span></a>,
      <a href="systemd-journald.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>,
      <a href="http://man7.org/linux/man-pages/man1/gdb.1.html"><span class="citerefentry"><span class="refentrytitle">gdb</span>(1)</span></a>
    </p></div></div></body></html>
